//电子邮件puhalskijsemen@gmail.com
//源码网站 开vpn全局模式打开 http://web3incubators.com/
//电报https://t.me/gamecode999
//网页客服 http://web3incubators.com/kefu.html


// 引入ExcelUtil模块
import { ExcelUtil } from "./ExcelUtil";

/**
 * 表示一个数据项
 * @param key 键
 * @param value 值
 * @param extent 扩展信息
 * 建议类名：ItemData
 */
export class itemData {
    key: number;
    value: any;
    extent?: any;

    constructor(key: number, value: any, extent?: any) {
        this.key = key;
        this.value = value;
        this.extent = extent;
    }
}

/**
 * 基础Excel处理类
 * 建议类名：BaseExcel
 */
export class BaseExcel {
    private static dataMap: Map<string, Map<number, any>> = new Map();

    /**
     * 加载数据
     * @param key 键
     * @param rawData 值
     * @param extraData 扩展信息
     * 建议方法名：loadData
     */
    static loadData(key: string, rawData: any, extraData: any): void {
        this.dataMap.set(key, ExcelUtil.convertExcelData(key, rawData, extraData));
    }

    /**
     * 获取数据
     * @param key 键
     * @param subKey 子键
     * @returns 对应的数据项或null
     * 建议方法名：getData
     */
    static getData(key: string, subKey: number): any | null {
        const nestedMap = this.dataMap.get(key);
        return nestedMap?.get(subKey) || null;
    }

    /**
     * 获取所有数据
     * @param key 键
     * @returns 对应的所有数据项
     * 建议方法名：getAllData
     */
    static getAllData(key: string): Map<number, any> | undefined {
        return this.dataMap.get(key);
    }
}